Skip to content

Replace deprecated rdfjs-wrapper with @rdfjs/wrapper#16

Merged
jeswr merged 2 commits intomainfrom
copilot/update-rdfjs-wrapper-namespace
Apr 4, 2026
Merged

Replace deprecated rdfjs-wrapper with @rdfjs/wrapper#16
jeswr merged 2 commits intomainfrom
copilot/update-rdfjs-wrapper-namespace

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 4, 2026

rdfjs-wrapper is deprecated in favor of @rdfjs/wrapper. This migrates to the new package and adapts to its updated API.

Dependency change

  • rdfjs-wrapper@^0.15.0@rdfjs/wrapper@^0.32.0

API migration

The new package restructures mapping utilities into namespaced exports:

Old New
ValueMappings.literalToString LiteralAs.string
ValueMappings.iriToString NamedNodeAs.string
ValueMappings.literalToDate LiteralAs.date
ValueMappings.literalToNumber LiteralAs.number
TermMappings.stringToLiteral LiteralFrom.string
TermMappings.stringToIri NamedNodeFrom.string
TermWrapper.as(Class) TermAs.instance(Class) / TermFrom.instance
this.term.value this.value

Example:

// Before
import { TermMappings, ValueMappings, TermWrapper } from "rdfjs-wrapper"
this.objects(RDF.type, ValueMappings.iriToString, TermMappings.stringToIri)
this.objects(ACP.apply, TermWrapper.as(Policy), TermWrapper.as(Policy))

// After
import { NamedNodeAs, NamedNodeFrom, TermAs, TermFrom } from "@rdfjs/wrapper"
this.objects(RDF.type, NamedNodeAs.string, NamedNodeFrom.string)
this.objects(ACP.apply, TermAs.instance(Policy), TermFrom.instance)

Note: TermAs.instance(Class) is a factory returning a mapping, while TermFrom.instance is the mapping function itself — it extracts the underlying Term from any TermWrapper regardless of subclass.

Copilot AI linked an issue Apr 4, 2026 that may be closed by this pull request
Migrate from the deprecated `rdfjs-wrapper` package to the new `@rdfjs/wrapper`
namespace. Update all import statements and adapt to the new API:

- ValueMappings.literalToString → LiteralAs.string
- ValueMappings.iriToString → NamedNodeAs.string
- ValueMappings.literalToDate → LiteralAs.date
- ValueMappings.literalToNumber → LiteralAs.number
- TermMappings.stringToLiteral → LiteralFrom.string
- TermMappings.stringToIri → NamedNodeFrom.string
- TermWrapper.as(Class) → TermAs.instance(Class)
- TermFrom.instance for "from" mappings in objects()
- this.term.value → this.value (inherited from AnyTerm)

Agent-Logs-Url: https://github.com/solid/object/sessions/d7aba86d-a254-4824-9e3d-05deaee579b9

Co-authored-by: jeswr <63333554+jeswr@users.noreply.github.com>
Copilot AI changed the title [WIP] Update rdfjs wrapper to use @rdfjs/wrapper Replace deprecated rdfjs-wrapper with @rdfjs/wrapper Apr 4, 2026
Copilot finished work on behalf of jeswr April 4, 2026 21:30
Copilot AI requested a review from jeswr April 4, 2026 21:30
@jeswr jeswr marked this pull request as ready for review April 4, 2026 21:55
Copilot AI review requested due to automatic review settings April 4, 2026 21:55
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR migrates the codebase from the deprecated rdfjs-wrapper package to @rdfjs/wrapper, updating imports and term/value mapping APIs accordingly so RDFJS term wrappers keep working with the maintained library.

Changes:

  • Replaced rdfjs-wrapper dependency with @rdfjs/wrapper.
  • Updated mapping utilities usage (e.g., ValueMappings.*LiteralAs/NamedNodeAs, TermMappings.**From, TermWrapper.as()TermAs.instance()/TermFrom.instance).
  • Updated usages of .term.value to .value where applicable and adjusted unit test expectations.

Reviewed changes

Copilot reviewed 17 out of 17 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
test/unit/example.test.ts Updates assertion to use wrapper .value instead of .term.value.
src/webid/WebIdDataset.ts Switches DatasetWrapper import to @rdfjs/wrapper.
src/webid/Agent.ts Migrates term/value mappings and .value accessors for Agent-related fields.
src/solid/TelephoneDataset.ts Switches DatasetWrapper import to @rdfjs/wrapper.
src/solid/Telephone.ts Migrates literal/IRI mappings to LiteralAs/LiteralFrom/NamedNodeAs/NamedNodeFrom.
src/solid/Resource.ts Migrates mappings and uses wrapper .value for resource ID.
src/solid/EmailDataset.ts Switches DatasetWrapper import to @rdfjs/wrapper.
src/solid/Email.ts Migrates literal/IRI mappings to LiteralAs/LiteralFrom/NamedNodeAs/NamedNodeFrom.
src/solid/ContainerDataset.ts Switches DatasetWrapper import to @rdfjs/wrapper.
src/solid/Container.ts Migrates wrapper class mapping to TermAs.instance + TermFrom.instance.
src/acp/Typed.ts Migrates rdf:type mapping to NamedNodeAs/NamedNodeFrom.
src/acp/Policy.ts Migrates allow/anyOf mappings to @rdfjs/wrapper APIs.
src/acp/Matcher.ts Migrates agent mapping to NamedNodeAs/NamedNodeFrom.
src/acp/AcrDataset.ts Switches DatasetWrapper import to @rdfjs/wrapper.
src/acp/AccessControlResource.ts Migrates access control/resource mappings to new mapping APIs.
src/acp/AccessControl.ts Migrates policy mapping to TermAs.instance + TermFrom.instance.
package.json Replaces dependency rdfjs-wrapper with @rdfjs/wrapper.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@jeswr jeswr merged commit 588445b into main Apr 4, 2026
8 checks passed
@jeswr jeswr deleted the copilot/update-rdfjs-wrapper-namespace branch April 4, 2026 22:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Use @rdfjs/wrapper instead of rdfjs-wrapper

3 participants